1. Field of the Invention
This invention relates to computer networks and file storage systems. More particularly, the invention relates to a system and method for performing conflict resolution for a distributed file sharing system.
2. Description of the Related Art
Computer networks are important for many different applications. One important type of networking is referred to as peer-to-peer or P2P networking. As used herein, a peer-to-peer network is generally used to describe a decentralized network of peer nodes where each node may have similar capabilities and/or responsibilities. Participating peer nodes in a P2P network may communicate directly with each other. Work may be done and information may be shared through interaction among the peers. In addition, in a P2P network, a given peer node may be equally capable of serving as either a client or a server for another peer node.
A peer-to-peer network may be created to fulfill some specific need, or it may be created as a general-purpose network. Some P2P networks are created to deliver one type of service and thus typically run one application. For example, Napster was created to enable users to share music files. Other P2P networks are intended as general purpose networks which may support a large variety of applications. Any of various kinds of distributed applications may execute on a P2P network. Exemplary peer-to-peer applications include file sharing, messaging applications, distributed processing, etc.
A peer-to-peer network may be especially useful for applications which utilize distributed or shared data, in part because the reliance on centralized servers to access data can be reduced or eliminated. In particular, it may be desirable to implement a distributed file sharing system using a P2P network.
In some distributed file sharing systems, files may be replicated on multiple nodes in the system. Some distributed file sharing systems allow concurrent updates to different replicas in order to improve performance. However, concurrent updates can result in replica conflicts. It is necessary to provide a mechanism for handling these conflicts.